const validate = require('./validate.js')

const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : '0' + n
}

//空值过滤器
const filterForm = (form) => {
  let obj = {};
  Object.keys(form).forEach(ele => {
    if (!validate.validatenull(form[ele])) {
      obj[ele] = form[ele]
    }
  });
  return obj;
}

// 保存别人分享来的 userCode
const saveSharerUserCode = (options) => {
  if (options.scene) {
    //接受二维码中参数
    /**
     * 这里需要特别注意：
     * 由于腾讯限制了scenes的长度，导致传参的局限性，为尽可能的利用这有限的长度传参，
     * 故我们定义了scenes的参数格式，当一个页面需要传多个参数时，我们用“&”符号分割开来，第2位固定放分享人的user_code，这样可以最大限度减少长度占用
     * 第1位一般放ID，第2位固定放分享人的user_code，比如服务页面scenes为：goodspuId+&+sharer_user_code
     * 因为固定第2位放分享人的user_code，当有些页面无需传ID时，我们也需要用“&”拼一下，第一位随意用一个字符点位即可，比如页面scenes为：0+&+sharer_user_code
     */
    var scenes = decodeURIComponent(options.scene).split('&');
    if (scenes[1]) {
      wx.setStorageSync('sharer_user_code', scenes[1]);
    }
  } else {
    if (options.sharer_user_code) {
      wx.setStorageSync('sharer_user_code', '');
      wx.setStorageSync('sharer_user_code', options.sharer_user_code);
    }
  }
};

// 如果有分享人则给data带上分享人的user_code
const dataAddSharerUserCode = (data) => {
  var sharer_user_code = wx.getStorageSync('sharer_user_code');
  if (sharer_user_code) {
    data = Object.assign({
      sharerUserCode: sharer_user_code
    }, data);
  }
  return data;
};

module.exports = {
  formatTime: formatTime,
  formatNumber: formatNumber,
  filterForm: filterForm,
  saveSharerUserCode: saveSharerUserCode,
  dataAddSharerUserCode: dataAddSharerUserCode
}
